open close principle example